"""
    转换至8位png
    查看mask的像素值
"""
import os
import numpy as np
from PIL import Image
import cv2

def trans_png(img_path,png_path):
    img=Image.open(img_path)
    # 转8位
    img=Image.fromarray(np.uint8(img) * 100)
    img.save(png_path)

def get_value(png_path):
    """
    灰度就是没有色彩，RGB色彩分量全部相等
    """
    img=cv2.imread(png_path)

    assert img.shape==(256, 256, 3)
    print(set(img.reshape(-1))) # {0,100} 或 {0}

def batch_trans(tif_dir,png_dir):
    tif_files=os.listdir(tif_dir)
    for tif_file in tif_files:
        png_file=tif_file[:-3]+'png'
        trans_png(os.path.join(tif_dir,tif_file),
                  os.path.join(png_dir,png_file))

        # 查看png的集合值
        get_value(os.path.join(png_dir,png_file))

if __name__=="__main__":
    tif_dir='./mask'
    png_dir='./maskpng'

    if not os.path.exists(png_dir):
        os.makedirs(png_dir)

    batch_trans(tif_dir,png_dir)
